import pandas as pd

class Person():
   def __init__(self, name, age, data):
        self.name = name
        self.age = age
        self.data = data

   def call_name(self):
       print(f'Привет, меня зовут {self.name}')
   
   def call_age(self):
       print(f'Мой возраст {self.age} года')
   
   def became_data(self):
       print(f'Ура, я {self.data}!')

class Student(Person):
   
   def __init__(self, graduate):
        self.graduate = graduate
   
   def call_univer(self):
       print(f'Преподаю Python в {self.graduate}?!')

class Educator(Person):

    def __init__(self, degree):
        self.degree = degree

    def call_tutor(self):
        print('Преподаю Python в школе?!')

    def can_teach(self):
        print('Наверное, когда-то буду что-то преподавать - всегда хотел')

class Engineer(Person):
    
    def __init__(self, rank):
        self.rank = rank

    def call_work(self):
        print(f'Работаю инженером в компании')
    
    def can_coding(self):
        print('Иногда могу что-то несложное накодить))')

class Resident(Student, Educator, Engineer):

    def __init__(self, name, age, data, graduate, degree, rank):
        Person.__init__(self, name, age, data)
        Student.__init__(self, graduate)
        Educator.__init__(self, degree)
        Engineer.__init__(self, rank)

    def __str__(self) -> str:
        return f"""\nЯ - {self.name}! 
                   \nМне {self.age}. 
                   \nПрофессия {self.data}. 
                   \nУчусь в Университете {self.graduate}.
                   \nТеперь {self.degree}, когда-то стану).
                   \nВ компании {self.rank}))).\n"""
    
    def became_data(self):
        Person.call_name(self)
        Person.call_age(self)
        Student.call_univer(self)
        print('Кем же я стал?')
        Person.became_data(self)
        Engineer.can_coding(self)
        Educator.can_teach(self)
    

# print(Resident.__mro__) # Это чтобы отследить последовательность отработки цепочки наследования
r = Resident('Олег', 42, 'Дата-инженер', 'Иннополис', 'ученый', 'директор')
print(r)
r.became_data()

